

package proj5labbd;

import proj5labbd.exceptions.NullConnection;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

/*
 * O DBConector é uma classe utilizada para armazenar informações da conexão com o SGBD
 * bem como controlar a mesma
 */
public class DBConnector {

    private Connection conn; //Conector do SGBD
    private String ip;
    private int port;
    private String user;
    
    //Construtor nulo
    public DBConnector() {
        ip = "";
        port = -1;
        user = "";
        conn = null;
    }

    public DBConnector(String ip,int port,String user) {

        this.ip = ip;
        this.port = port;
        this.user = user;
        conn = null;

    }

    //Inicia uma conexão com o SGBD. Se este já estiver conectado, cancela a conexão e tenta abrir
    //uma outra. O password 
    public void start(String pass) throws SQLException, NullConnection, ClassNotFoundException {

            if ( conn != null ) stop();
            String url = "jdbc:oracle:thin:@"+ip+":1521:xe";
            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection(url, user, pass);

    }

    //para a conexão com o SGBD
    public void stop() throws SQLException, NullConnection {

                if ( conn != null ) conn.close();
                else throw new NullConnection();
                conn = null;

    }

    //gets
    public String getIP() {
        return ip;
    }

    public int getPort() {
        return port;
    }

    public String getUser() {
        return user;
    }

    public Connection getConn() {
        return conn;
    }

    //sets
    public void setIP(String ip) {
        this.ip = ip;
    }

    public void setPort(int port) {
        this.port = port;
    }

    public void setUser(String user) {
        this.user = user;
    }

}

